iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
自我挑戰組

環島C一下自己的人生系列 第 13

[DAY13]自定結構資料型態

  • 分享至 

  • xImage
  •  

今天來講講自定結構資料型態的用法
目的是什麼呢?
大概就是讓你直觀的了解該參數的意義(?
反正就是看你個人如何使用
那什麼是自定結構資料型態呢?

typedef struct xxxx{
....
}xxxx_t <-type命名法則 (其實你也可以隨便定義,就看使用者習慣)

那麼一樣以例題的方式來代入
假設今天有位老師想登記所有學生的名字,數學及英文的成績並給予排名時
就可以用自訂結構的方式來寫,例如

typedef struct student{
int id;
char name[8];
int math;
int c;
int rank;
int avg;
}student_t;

那麼在定義好之後,即可以在程式中使用此資料型態

student_t s[5];

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
typedef struct student{
    int id;
    char name[8];
    int math;
    int c;
    int rank;
    int avg;

}student_t;
int average(student_t s[],int size){
    int i=0,aver=0;
    for(i=0;i<size;i++){
        aver = (s[i].math+s[i].c)/2 + aver;
    }
    aver = aver/size;
    return aver;

}
void compute(student_t s[],int size){
    int i,j;
    for(i=0;i<size;i++){
        s[i].avg = (s[i].math+s[i].c)/2;
    }
    for(i=0;i<size;i++){
        for(j=0;j<size;j++){
            if(s[i].avg<s[j].avg){
                s[i].rank++;
            }
        }
    }
}
int main(){

    student_t s[5];
    int i=0,aver;
    for(i=0;i<5;i++){
        s[i].math = rand()%100;
        s[i].c = rand()%100;
        s[i].rank=0;
        printf("math = %d,c = %d\n",s[i].math,s[i].c);
    }
    aver=average(s,5);
    printf("aver= %d\n",aver);
    compute(s,5);
    for(i=0;i<5;i++){
        printf("rank = %d\n",s[i].rank);
    }
}



上一篇
[Day12]選擇排序法
下一篇
[Day14] Function Pointer 函式指標
系列文
環島C一下自己的人生24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言